/*
 * @Author: Jake Gu
 * @Date: 2019-04-02 16:34:45
 * @LastEditTime: 2019-04-30 11:55:04
 */
/**
 * @file   dct_lee_cuda.h
 * @author Yibo Lin
 * @date   Oct 2018
 */

#ifndef GPUPLACE_DCT_LEE_CUDA_H
#define GPUPLACE_DCT_LEE_CUDA_H

namespace lee
{

template <typename TValue>
void precompute_dct_cos(TValue *cos, int N); 

template <typename TValue>
void precompute_idct_cos(TValue *cos, int N);

template <typename TValue>
void dct(const TValue *vec, TValue *curr, TValue* next, const TValue *cos, int M, int N);

template <typename TValue>
void idct(const TValue *vec, TValue *curr, TValue *next, const TValue *cos, int M, int N);

} // End of namespace lee

#endif
